There is a need to automatically add various forms of transactional recoverability to a binary class. Sometimes the source code is not available to modify the class. Even when source code is available, a great deal of reprogramming is required to add these features.
The user should be able to add this feature in a way that does not increase the size of the user's class diagram with many variations on the original class.
The user should be able to specify this feature as constraints along with constraints that describe the function of the class (e.g., a speaker driver that can go to less than 10 CPS and costs less than $5) when searching for the class. This feature should include whether the object is persistent, whether its persistence can be controlled by the object's clients, how it is faulted into memory, and how it is synced with its datastore.